import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/12 16:36
 * @description 两次遍历
 */
public class Solution {
    public static void main(String[] args) {

    }
    public int candy(int[] ratings) {
        int n = ratings.length;
        // 从左到右遍历，如果右边孩子比左边评分高，那么糖果+1，否则为1
        int[] left = new int[n];
        for (int i = 0; i < n; i++) {
            if (i > 0 && ratings[i] > ratings[i - 1]) {
                left[i] = left[i - 1] + 1;
            } else {
                left[i] = 1;
            }
        }
        // 从右到左遍历，如果左边孩子比右边高，那么糖果+1，否则为1，然后与前面的最少糖果相比，取最大值
        int right = 0, ret = 0;
        for (int i = n - 1; i >= 0; i--) {
            if (i < n - 1 && ratings[i] > ratings[i + 1]) {
                right++;
            } else {
                right = 1;
            }
            ret += Math.max(left[i], right);
        }
        return ret;
    }
}
